/*
 * @Author: tomystery
 * @Date:   2017-09-14 16:07:22
 * @Last Modified by:   tomystery
 * @Last Modified time: 2017-09-28 21:45:56
 */
'use strict';
require('./index.css');
require('page/common/nav/index.js');
require('page/common/header/index.js');
var _mm = require('util/mm.js');
var addressModal=require('./address-modal.js');
var _order = require('service/order-service.js');
var _address = require('service/address-service.js');
var templateAddress = require('./address-list.string');
var templateProduct = require('./product-list.string');

var page = {
    data: {
        // selectedAddressId:''

    },
    init: function() {
        this.onLoad();
        this.bindEvent();
    },
    onLoad: function() {
        this.loadAddressList();
        this.loadProductList();
    },
    bindEvent: function() {
        var _this = this;

        //1.地址的选择
        $(document).on('click', '.address-item', function() {
            $(this).addClass('active').siblings('.address-item').removeClass('active');
            _this.data.selectedAddressId = $(this).data('id');
        });

        //2.提交订单
        $(document).on('click', '.order-submit', function() {
            var shippingId = _this.data.selectedAddressId;
            if (shippingId) {
                _order.createOrder({
                   shippingId:shippingId 
                }, function(res) {
                  
                    window.location.href = './payment.html?orderNumber=' + res.orderNo;

                }, function(errMsg) {
                    _mm.errorTips(errMsg);
                })
            }else{
                _mm.errorTips('请选择地址后再提交');
            }

        });
         //3.地址的添加
        $(document).on('click', '.address-add', function() {
           addressModal.show({
                isUpdate : false,
                onSuccess : function(){
                    _this.loadAddressList();
                }
            });
        });
        //4.点击编辑地址按钮
         $(document).on('click', '.address-update', function(e) {
            e.stopPropagation();
           
            var shippingId=$(this).parents('.address-item').data('id');
             _address.getAddress(shippingId,function(res){
            addressModal.show({
                isUpdate:true,
                data:res,
                onSuccess:function(){
                    _this.loadAddressList();
                }
            })

        })
        });
         //5.点击删除地址按钮
            $(document).on('click', '.address-delete', function(e){
                 e.stopPropagation();
                if(window.confirm('确认要删除该地址？')){
                    var shippingId=$(this).parents('.address-item').data('id');
                 _address.deleteAddress(shippingId,function(res){
                     _mm.successTips('地址删除成功');

                    _this.loadAddressList();
                 },function(errMsg){
                      _mm.errorTips(errMsg);
                  });
                }

            });



    },

    //1.加载地址列表
    loadAddressList: function() {
        var _this=this;
        _address.getAddressList(function(res) {
           
            _this.addressFilter(res);

            var addressListHtml = _mm.renderHtml(templateAddress, res);
            $('.address-con').html(addressListHtml);
        }, function(errMsg) {
            $('.address-con').html('<p class="err-tip">地址加载失败，请刷新后重试</p>');
        })
    },
    //处理地址列表选中状态
    addressFilter:function(data){
        if(this.data.selectedAddressId){
            var selectedAddressIdFlag= false;
            for(var i=0,length=data.list.length;i<length;i++){
                if(data.list[i].id===this.data.selectedAddressId){
                data.list[i].isActive=true;
                selectedAddressIdFlag=true;
                }
               
            };
            //如果以前选中的不在列表里，将其删除
            if(!selectedAddressIdFlag){
                this.data.selectedAddressId=null;
            }
        }

    },

    //2.加载商品列表
    loadProductList: function() {
        var _this = this;
         $('.product-con').html('<div class="loading"></div>')

        _order.getProductList(function(res) {

            var productListHtml = _mm.renderHtml(templateProduct, res);
            $('.product-con').html(productListHtml);
        }, function(errMsg) {
            $('.product-con').html('<p class="err-tip">商品信息加载失败，请刷新后重试</p>');
        })
    }

};
$(function() {
    page.init();
})